package com.boot.entity;

import lombok.Data;
import org.springframework.data.annotation.Transient;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * sys_user
 * @author
 */
@Data
//@Accessors(chain = true)
public class SysUser implements Serializable {

    private Long id;

    private String username;

    /**
     * 登录密码
     */
    @NotNull
    private String password;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 手机号
     */
    @Transient
    private String mobile;

    /**
     * 邮箱地址
     */
    private String email;

    /**
     * QQ
     */
    private String qq;

    /**
     * 生日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")//前台到后台的时间格式的转换
//    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")//后台到前台的时间格式的转换
    private Date birthday;

    /**
     * 性别
     */
    private Short gender;

    /**
     * 头像地址
     */
    private String avatar;

    /**
     * 超级管理员、管理员、普通用户
     */
    private Object userType;

    /**
     * 公司
     */
    private String company;

    /**
     * 个人博客地址
     */
    private String blog;

    /**
     * 地址
     */
    private String location;

    /**
     * 用户来源
     */
    private Object source;

    /**
     * 用户唯一表示(第三方网站)
     */
    private String uuid;

    /**
     * 隐私（1：公开，0：不公开）
     */
    private Byte privacy;

    /**
     * 通知：(1：通知显示消息详情，2：通知不显示详情)
     */
    private Byte notification;

    /**
     * 金币值
     */
    private Integer score;

    /**
     * 经验值
     */
    private Integer experience;

    /**
     * 注册IP
     */
    private String regIp;

    /**
     * 最近登录IP
     */
    private String lastLoginIp;

    /**
     * 最近登录时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date lastLoginTime;

    /**
     * 登录次数
     */
    private Integer loginCount;

    /**
     * 用户备注
     */
    private String remark;

    /**
     * 用户状态
     */
    private Integer status;

    /**
     * 注册时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

    private static final long serialVersionUID = 1L;
}
